/*******************************************************************************************
 *  Horizontal.h
 *
 *  Creating and managing Horizontal object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/*****************************************************/
/* The different type a HORIZONTAL object can have : */
/*****************************************************/
#ifndef _HRT_TYPE_ENUM_
#define _HRT_TYPE_ENUM_
typedef enum {absolute_hrt, relative_hrt, sequence_hrt} HrtType;
#endif



/*****************************************************/
/* The HORIZONTAL object structure :                 */
/*****************************************************/
#ifndef _HORIZONTAL_STRUCT_
#define _HORIZONTAL_STRUCT_
typedef struct {

	ObjType		otype;						/* The object's type, as in ...   */
											/* ... the BML type enum.         */

	HrtType		type;						/* The type of horizontal accel.  */

	char		*value;						/* The vertical acceleration ...  */
											/* ... value.                     */

} Horizontal;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
Horizontal *newHorizontal(void);		/* Creates an empty Horizontal object strucutre. */
void freeHorizontal(Horizontal *h);		/* Destroys a Horizontal object structure.       */ 


/* FILLING the Horizontal object structure : */
void setHorizontalType(Horizontal *h, HrtType t);
void setHorizontalValue(Horizontal *h, char *value);
